嗨,今天要講的是也很常見到的關鍵字: is
is 用於檢查某個變數是否相容於某個類別 (或型別)。
下面是微軟的官方範例,展示了 Nullable 的 int 型別變數、被封裝成 object 的 int 變數,使用 is 判斷,都能正確識別是 int。在 C# 7.0 中,當判斷是 int 時,能用 Declaration Pattern 直接宣告為變數 a 和 b。
int i = 23;
object iBoxed = i;
int? jNullable = 7;
if (iBoxed is int a && jNullable is int b)
{
Console.WriteLine(a + b); // 輸出 30
}
除此之外,也可以用來檢查某個變數是不是 null,而在 C# 9.0 以後,還可以加入 not 做反向檢查 (套用 Negation Pattern):
if (a is null)
{
// ……
}
if (a is not null)
{
// ……
}
is 還有幾種在新版本 C# 可辨識的 pattern,請查閱以下的參考資料。
參考資料: